﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Collections;

namespace PJ.Business.SalePurchase
{
    /// <summary>
    /// Create Invoice result
    /// </summary>
    public interface ICreateInvoiceResult
    {
        /// <summary>
        /// Invoice id
        /// </summary>
        string Id { get; }

        /// <summary>
        /// Invoice PDF document
        /// </summary>
        byte[] PdfDocument { get; }
    }

    /// <summary>
    /// Create a new invoice operation
    /// </summary>
    public interface ICreateInvoice : IBusinessOperation
    {
        /// <summary>
        /// Execute create invoice
        /// </summary>
        /// <param name="partnerId">Partner Id</param>
        /// <param name="reference">Partner reference</param>
        /// <param name="inventoryItemIds">List of invoice items ids</param>
        /// <param name="quantities">List of invoice items quantities</param>
        /// <param name="units">List of invoice items units</param>
        /// <returns>Created invoice</returns>
        ICreateInvoiceResult Execute(string partnerId, string reference, List<string> inventoryItemIds,
                                                List<double> quantities, List<string> units);

    }
}
